Skip to content

feat: session work column enhancements — Files Changed editing + project-wide Preview with PDF and TeX support - #737

Closed
jeonghun-jj-lee wants to merge 9 commits into
mainfrom
amico/issue-721-work-column-enhancements
Closed

feat: session work column enhancements — Files Changed editing + project-wide Preview with PDF and TeX support#737
jeonghun-jj-lee wants to merge 9 commits into
mainfrom
amico/issue-721-work-column-enhancements

Conversation

@jeonghun-jj-lee

Copy link
Copy Markdown
Contributor

Closes #721

Session work column enhancements

Implementation of the 9-slice feature DAG for #721.

Dependency DAG (5 frontiers)

Frontier Issues
F0 #722 (mode toggle), #724 (dropdown search), #725 (project file tree)
F1 #723 (save infra), #726 (renderer dispatch)
F2 #727 (PDF rendering), #728 (read-write text)
F3 #729 (TeX compilation)
F4 #730 (SyncTeX forward search)

Phase 1 (complete)

  • Added pdfjs-dist to opencode fork (v1.18.10-amicode.20)
  • Extracted buildCollapsedTree to shared utils/collapsed-tree.ts
  • Extracted ZoomControl to shared components/zoom-control.tsx
  • Re-extracted overlay

In progress

Walking the DAG frontier by frontier...

@jeonghun-jj-lee jeonghun-jj-lee added enhancement New feature or request area:ui labels Sep 2, 2026
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jeonghun-jj-lee
jeonghun-jj-lee force-pushed the amico/issue-721-work-column-enhancements branch from 5a93f8f to 7eeb220 Compare September 3, 2026 11:50
…rt (#725)

- Add extension-side recursive directory scan (preview_file_tree.ts)
  with RENDERABLE_EXTENSIONS filter, hidden-dir/node_modules skip
- Add preview-file-tree bridge message: extension pushes filtered file
  list on app-ready and on refresh request from webview
- Add app-side state store (amicode-preview-file-tree.ts) with SolidJS
  signals for project files, project root, and optional environment
- Wire bridge: chat_bridge.ts handles preview-file-tree-request via
  registered command; extension.ts pushPreviewFileTree on app-ready
- Transform session-preview-tab.tsx: when project tree available, show
  FileTreeV2 in static mode with search/filter input; when bound to
  a Research Environment, show env files below a labeled divider with
  colored pill (same 8-color palette as sidebar); preserve session-
  touched .md flat list as no-project fallback
- 14 unit tests for scan filter, 5 for state store, all green
…or parsing (#729)

- Add tex_support.ts: detectTexEngine (latexmk > pdflatex > xelatex >
  lualatex detection chain), discoverMainFile (\documentclass scan),
  parseTexErrors (! errors + file:line:msg patterns), compileTeX
  (subprocess with AbortController cancellation)
- Extend WorkspaceProjectEntry with tex? field (available, engine,
  mainFile) for bridge push enrichment
- Wire TeX engine detection at extension startup (async, non-blocking)
- Add tex-compile-request bridge handler + amicode.texCompile command:
  cancels in-flight compile, pushes status via tex-compile-status
- 12 unit tests: engine detection shape, main file discovery (5 cases),
  error parsing (4 cases)
Sync: PDF viewer (#727), PlainEditor CM6 extension map (#728),
preview-content-area with real renderers, SyncTeX parser (#730),
preview-file-tree state store, session-ui legacy-modes dep.
Merges all 6 slices:
- #725: Project-wide file tree with search + environment support
- #726: Renderer dispatch (markdown, PDF, images, CodeMirror)
- #727: PDF rendering (pdfjs-dist, zoom, scroll preservation)
- #728: CodeMirror 6 editor (line numbers, syntax highlighting, auto-save)
- #729: TeX compilation pipeline (detection, Build button, error parsing)
- #730: SyncTeX forward search (minimal parser + lookup)

Closes #725, closes #726, closes #727, closes #728, closes #729, closes #730
@jeonghun-jj-lee
jeonghun-jj-lee force-pushed the amico/issue-721-work-column-enhancements branch from e1b0c47 to 450751d Compare September 8, 2026 21:36
…wlists (#725/#729)

The VS Code webview relay in chat_panel.ts has explicit allowlists for
which bridge message kinds are forwarded between the extension and the
iframe. The four new message kinds were missing, causing the extension's
pushPreviewFileTree to be silently dropped by the relay — the app never
received the file list, so hasProjectTree() stayed false and the legacy
'No markdown files' empty state showed instead of the project file tree.

Added to iframe→extension (lane 1): preview-file-tree-request,
tex-compile-request. Added to extension→iframe (lane 2):
preview-file-tree, tex-compile-status. Both relay renderers (renderHtml
+ renderTransitionHtml) updated.

5 structural tests verifying each kind appears in both renderers.
pushPreviewFileTree required a research project (research-project.toml)
in the VS Code workspace — dev workspaces like amicode itself got no
file tree at all, falling back to the legacy session-touched .md list.

Extract pickPreviewProject() into preview_file_tree.ts: prefers a
research project when one exists, falls back to the first dev project
otherwise. Environment resolution stays gated to research projects
(dev projects never have a bound environment).

The scanner already skips node_modules, .git, dist, build, and hidden
dirs, so dev-repo scans are safe and bounded.

7 new tests: 5 unit tests for pickPreviewProject priority logic,
2 structural tests verifying extension.ts uses the new function.
@jeonghun-jj-lee

Copy link
Copy Markdown
Contributor Author

Closing with #721.

@jeonghun-jj-lee
jeonghun-jj-lee deleted the amico/issue-721-work-column-enhancements branch September 8, 2026 23:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ui enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Preview tab — project-wide document browser with CodeMirror editing, PDF viewer, and TeX compilation

1 participant